
// Generated from complexCalculator.g4 by ANTLR 4.9

#pragma once


#include "antlr4-runtime.h"
#include "complexCalculatorParser.h"



/**
 * This class defines an abstract visitor for a parse tree
 * produced by complexCalculatorParser.
 */
class  complexCalculatorVisitor : public antlr4::tree::AbstractParseTreeVisitor {
public:

  /**
   * Visit parse trees produced by complexCalculatorParser.
   */
    virtual antlrcpp::Any visitUnit(complexCalculatorParser::UnitContext *context) = 0;

    virtual antlrcpp::Any visitDefUnit(complexCalculatorParser::DefUnitContext *context) = 0;

    virtual antlrcpp::Any visitVarUnit(complexCalculatorParser::VarUnitContext *context) = 0;

    virtual antlrcpp::Any visitType(complexCalculatorParser::TypeContext *context) = 0;

    virtual antlrcpp::Any visitVarDef(complexCalculatorParser::VarDefContext *context) = 0;

    virtual antlrcpp::Any visitInitVal(complexCalculatorParser::InitValContext *context) = 0;

    virtual antlrcpp::Any visitStatAssign(complexCalculatorParser::StatAssignContext *context) = 0;

    virtual antlrcpp::Any visitStatExp(complexCalculatorParser::StatExpContext *context) = 0;

    virtual antlrcpp::Any visitLVal(complexCalculatorParser::LValContext *context) = 0;

    virtual antlrcpp::Any visitExpUnary(complexCalculatorParser::ExpUnaryContext *context) = 0;

    virtual antlrcpp::Any visitIdentifier(complexCalculatorParser::IdentifierContext *context) = 0;

    virtual antlrcpp::Any visitExpNumber(complexCalculatorParser::ExpNumberContext *context) = 0;

    virtual antlrcpp::Any visitExpPow(complexCalculatorParser::ExpPowContext *context) = 0;

    virtual antlrcpp::Any visitExpMulDiv(complexCalculatorParser::ExpMulDivContext *context) = 0;

    virtual antlrcpp::Any visitExpParen(complexCalculatorParser::ExpParenContext *context) = 0;

    virtual antlrcpp::Any visitExpAddSub(complexCalculatorParser::ExpAddSubContext *context) = 0;

    virtual antlrcpp::Any visitNumber(complexCalculatorParser::NumberContext *context) = 0;

    virtual antlrcpp::Any visitOpUnary(complexCalculatorParser::OpUnaryContext *context) = 0;

    virtual antlrcpp::Any visitOpMulDiv(complexCalculatorParser::OpMulDivContext *context) = 0;

    virtual antlrcpp::Any visitOpAddSub(complexCalculatorParser::OpAddSubContext *context) = 0;

    virtual antlrcpp::Any visitFuncRParams(complexCalculatorParser::FuncRParamsContext *context) = 0;

    virtual antlrcpp::Any visitFuncRParam(complexCalculatorParser::FuncRParamContext *context) = 0;


};

